[Сервер] Настройка двухфакторной аутентификации 2FA для SSH на Linux сервере с доступом по ключам и паролям

Для повышения безопасности входа на сервер через SSH с использованием ключей и паролей можно включить двухфакторную аутентификацию с помощью Google Authenticator

Шаг 1. Установка PAM-модуля Google Authenticator

Откройте терминал и введите команды:

sudo apt-get update
sudo apt-get install libpam-google-authenticator

Шаг 2. Настройка 2FA для пользователя

Запустите настройку для пользователя, под которым подключаетесь по SSH:

google-authenticator

Ответьте на вопросы, обычно лучше выбрать положительные варианты для обновления ключей и ограничений.

Шаг 3. Изменение PAM-конфигурации

Откройте файл /etc/pam.d/sshd для редактирования:

sudo nano /etc/pam.d/sshd

Добавьте в начало или конец файла строчку:

auth required pam_google_authenticator.so

Сохраните изменения (Ctrl+O) и выйдите (Ctrl+X).

Шаг 4. Конфигурация SSH сервера для 2FA с ключами и паролями

Отредактируйте файл /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Добавьте или замените следующие строки:

ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive password,keyboard-interactive

Это позволит использовать 2FA как с аутентификацией по ключу, так и с паролем.

Сохраните и выйдите из редактора.

Шаг 5. Перезагрузка SSH сервиса

Чтобы изменения вступили в силу, перезапусти сервис SSH:

sudo systemctl restart sshd

Внимание